Tarea 2: Investigar la Demografía del Cliente

Introducción

Tras analizar y describir los datos sobre las transacciones del cliente, ahora estamos preparados para conseguir predecir el comportamiento de los clientes. Las preguntas que nos planteamos son:

I) Edad del Cliente: ¿Existen diferencias de edad entre los clientes de distintas regiones? Si es así, ¿podemos predecir la edad del cliente en una región basándonos en la demás información?

II) Canal: ¿Hay correlación entre la edad del cliente y si la transacción se realiza de forma online o en tienda física? ¿Pueden otros factores predecir si un cliente comprará online o en tienda?

III) Región: ¿Es posible clasificar las transacciones por región?

IV) Número de Productos: ¿Qué papel juega la cantidad de productos comprados? ¿Aparece en el árbol? ¿Por qué o por qué no?

V) Cantidad Gastada: ¿Es posible crear un modelo predictivo utilizando la cantidad gastada como variable dependiente?

Adicionalmente se contrastarán algunas hipótesis que se nos plantean:

Para dar respuesta a todas estas preguntas, dividiremos cada una de las preguntas en los siguientes apartados:

A. Descripción de los Datos: aquí se recuperarán algunos resultados del primer entregable que nos den pistas para construir adecuadamente el modelo predictivo. También se añadirá y ampliarán estos resultados descriptivos si el análisis lo requiere. En este apartado se trata de inferir cómo se ve afectada una variable por el resto.

B. Selección de las variables independientes: Aplicación del feature selection, es decir, se seleccionan las variables independientes que describen el comportamiento de la dependiente. Se aplicará feature engineering si fuera necesario, creando nuevas variables a partir de las existentes. Durante este análisis no se considerará dependencia con el número de productos comprados en ningún caso vistos los resultados de la primera tarea, los cuales no mostraban dependencia con las demás variables.

C. Modelo Predictivo: aquí prepararemos el modelo predictivo. Para ello escogeremos el algoritmo, optimizaremos sus hyperparameters, dividiremos los datos para que el modelo pueda aprender de ellos y comprobaremos la calidad de este.

C.1. Dividir las muestras en training y testing para evitar el overfitting. Debemos también asegurar que los datos están estratificados, es decir, la frecuencia de los datos para cada una de las agrupaciones mantiene la proporción en ambos conjuntos de datos training y testing. Además, se aplicará el cross-validation para evitar posibles errores debido a la partición arbitraria de los datos.

C.2. Selección y Optimización del Modelo: aquí escogemos el algoritmo o algoritmos que nos permitirán predecir los resultados. Trataremos de optimizar los hyperparameters del modelo. Para ello haremos una partición adicional de los datos que vamos a llamar validation dataset, lo cual nos permitirá ajustar el modelo sin que este aprenda de los datos test evitando así el overfitting.

C.3. Se realizan las predicciones utilizando el grupo de datos testing y se evaluará la calidad del algoritmo mediante los valores de precision, recall y f1-score. También utilizaremos la matriz de confusión para resumir los resultados.

C.4. Conclusiones: Extraemos las conclusiones de los resultados.

Antes de comenzar, importamos las librerías necesarias:

I) Edad del Cliente

Aquí trataremos de comprobar si existe una dependencia de la edad con respecto a las demás variables y crearemos nuestro propio modelo para predecirla.

I.A. Descripción de los Datos

Organizamos los datos para tener una visión global. A continuación mostramos un boxplot con la distribución de edad considerando dependencia con la región, canal y cantidad gastada. Para esta última variable, será necesario discretizar sus valores. Teniendo en cuenta lo visto en la tarea 1, la discretización más razonable es en los rangos siguientes:

Estos rangos marcaban límites muy claros, pues para región y canal dados, todas las combinaciones tenían transacciones de valor máximo igual a alguno de estos valores.

Con el objetivo de responder a la primera pregunta, graficamos la edad en función de la región:

Podemos decir que hay ligeras diferencias de edad en función de la región. La que más destaca es la región sud ya que es la que posee una mediana más alta que el resto de regiones. A pesar de ello, todas las cajas son bastante altas y abarcan tal cantidad de edades que no auguran una buena precisión para el modelo. Veamos qué sucede si incluimos el resto de variables:

Observamos que aún considerando todos los demás parámetros, cada una de las cajas abarca muchos valores. Esto significa que ninguna de ellas se identifica con un rango de edades concreto y bien acotado. Nos interesaría que las cajas fueran lo más pequeñas posible, de forma que dada una cantidad gastada, pudiéramos asignarle una edad con poco margen de error.

Otro paso imprescindible que debemos llevar a cabo es la discretización de la edad dado que el modelo no será capaz de predecir la edad exacta del cliente. Por ello, solo podemos exigirle que sea capaz de asignar la transacción a un cierto rango de edades. Para definir los rangos de edad, vamos a considerar 4 rangos de igual tamaño.

I. B. Selección de las Variables Independientes

Vistos los resultados en el anterior apartado, tendremos en cuenta las siguientes variables independientes:

Tengamos en mente que existen algoritmos como el llamado Decision Tree que solo es capaz de tratar con variables categoricas si estas son ordinales o binarias. Esto significa que no podemos tener la variable Region como input tal y como está definida ahora mismo. Para solventar este problema, debemos crear 4 nuevas variables llamadas Norte, Sud, Este y Oeste. Cada una de estas variables será binaria, tomando un valor 0 o 1 según si la transacción pertenece a la región o no.

En el árbol de decisión podemos escoger 3 de estas 4 variables como features ya que la última siempre será redundante con las demás pero, a pesar de ello, se ha decidido tomar las 4 para facilitar el trabajo al algoritmo. Esto se debe a que si, por ejemplo, escogemos como features las regiones norte, sud y este, y el árbol requiere dividir según la región oeste, necesitará hacer hasta 3 niveles asignando valor 0 a las tres primeras. Si añadimos oeste como feature a pesar de ser redundante, puede realizar esa misma partición en un único nivel.

Se seleccionan las features y la variable dependiente

I. C. Modelo Predictivo

I.C.1. Split en Training y Testing

Ahora dividiremos los datos en training y testing. Los parámetros que debemos tener presente son:

Creamos una función que nos haga esta partición y la aplicamos:

I.C.2. Selección del Algoritmo y Optimización

Crearemos hasta tres modelos predictivos para comparar resultados y ver cuál nos proporciona mejores resultados. Para ello usaremos los siguientes algoritmos:

Antes de aplicar el algoritmo, trataremos de crear una función que optimice los hyperparameters del modelo. A continuación listamos los hyperparameters que se han considerado más relevantes y que tendremos en cuenta en la optimización:

Definimos los hyperparameters a optimizar y la lista de posibles valores:

Creamos una función que nos elija la combinación de valores más óptima para nuestro modelo aplicando la función GridSearchCV. Dividimos el dataset train en 5 folds, uno de ellos hará de validation set.

A continuación definimos una función que crea el modelo predictivo y nos devuelve los valores predichos. También nos muestra en pantalla los parámetros relacionados con la calidad del modelo:

Se define una función que plotea la matriz de confusión:

I.C.3. Modelo Predictivo

Decision Tree

Obtenemos los hyperparameters optimizados para el algoritmo Decision Tree aplicando la función creada anteriormente:

Obtenemos los resultados relativos al Decision Tree:

Matriz de Confusion:

Random Forest

Repetimos el procedimiento, esta vez para el algoritmo random forest. Encontramos los hyperparameters óptimos:

Obtenemos la calidad del modelo así como los valores que este predice:

Matriz de Confusión:

Gradient Boosting

Repetimos el procedimiento, esta vez para el algoritmo gradient boosting. Por el alto coste computacional de la optimización de todos los hyperparameters, utilizaremos los mismos valores que los obtenidos en el Decision Tree y tan solo optimizaremos los parámetros n_estimators y learning_rate.

Aplicamos el algoritmo y obtenemos la calidad del modelo así como los valores que predice el modelo

Matriz de confusión

I.C.4. Conclusiones

Del modelo y la matriz de confusión extraemos las siguientes conclusiones:

Respondiendo a las preguntas:

¿Existen diferencias de edad entre los clientes de distintas regiones?

Sí existen ligeras diferencias en general, destacando la región sud la cual muestra una media de edad mayor al resto de regiones y, además, es la única que registra transacciones de clientes mayores de 75 años. Aún así, todas las regiones abarcan rangos de edad muy amplios y resulta imposible predecir la edad con precisión.

¿Podemos predecir la edad del cliente en una región basándonos en la demás información?

No, el modelo obtenido no es fiable. La precisión es baja para todos los rangos de edad y dos de ellos indican un alto recall. Esto significa que el modelo incluye en esos rangos muchas otras muestras pertenecientes a otros rangos.

II) Canal

Recordemos la pregunta que se nos plantea: ¿Hay correlación entre la edad del cliente y si la transacción se hace de forma online o en tienda física? ¿Pueden otros factores predecir si un cliente comprará online o en tienda?

Con el objetivo de dar respuesta a la pregunta, realizaremos dos análisis: en primer lugar trataremos de comprobar si existe una dependencia del canal de compra considerando la edad como única feature y, en segundo lugar, añadiremos las demás variables para comprobar si la precisión del modelo predictivo tiene margen de mejora o no.

Dado que se llevarán a cabo estos dos análisis por separado, y con el objetivo de no saturar la respuesta a la pregunta, aquí usaremos tan solo un algoritmo predictivo.

II.A. Descripción de los Datos

Organizamos los datos para tener una visión global. En primer lugar graficamos el número de transacciones para cada edad separando por canal:

Se puede observar que existen algunos rangos con mayores diferencias que otros:

Ahora vamos a introducir las demás variables para tratar de ver cuánta información nos proporcionan. Empezamos con la región:

Deducimos que la región será un indicador muy bueno para preveer el canal de la compra. La relación es directa para las regiones norte y sud. Veamos ahora si combinando la región con la edad podemos acabar de desglosar los resultados para las regiones este y oeste:

Afortunadamente vemos que hay unos rangos donde solo existen compras online o en tienda. Observando los gráficos, podemos partir las muestras en los siguientes rangos (líneas verdes en el gráfico anterior)

Discretizamos la edad según los rangos que acabamos de ver:

Asignamos un valor entero a cada rango en orden ascendente empezando por 0. Esto nos permitirá usar esta variable en el algoritmo. Dado que los valores se pueden ordenar, no es necesario hacer el mismo tratamiento que hicimos con la región.

A continuación evaluamos la dependencia del canal con la cantidad gastada:

Los resultados son interesantes ya que para la región este, un gasto mayor de 1000 significa que la transacción se realiza de forma online, mientras que el oeste muestra la misma tendencia para gastos mayores de 2000.

En resumen, tras ver la dependencia con todas las variables, podemos ver que podemos diferenciar el canal para muchos rangos de las distintas variables independientes. Sin embargo, tenemos algunas transacciones para las regiones este y oeste en las que resulta imposible distinguir el canal. Aún así, esperamos una buena precisión global si consideramos las variables región y cantidad gastada y no únicamente la edad.

II.B. Selección de las Variables Independientes

Para responder la pregunta que se nos plantea, haremos dos análisis. En primer lugar trataremos de construir un modelo utilizando tan solo la edad como feature. A continuación, añadiremos las demás variables (región y cantidad gastada) para ver qué información adicional nos porpocionan.

Seleccionamos las variables:

EDAD COMO ÚNICA FEATURE

II.C. Modelo Predictivo

II.C.1. Split en Training y Testing

Ahora dividiremos los datos en training y testing.

II.C.2. Selección del Algoritmo y Optimización

En este caso utilizaremos tan solo el algoritmo decision tree. Procederemos de forma parecida al caso anterior, en primer lugar optimizaremos los parámetros:

II.C.3. Modelo Predictivo

Aplicamos el modelo para obtener su calidad así como los valores predecidos:

Mostramos la matriz de confusión:

II.C.4. Conclusiones

El algoritmo funciona bastante bien en las primeras divisiones. Fijémonos en que el primer split es bajo la condición >74.5. Recordemos del primer apartado, que a partir de 75 años, todas las transacciones se realizaban en el sud y esta región solo registraba compras online. Otros criterios cómo dividir en 63.5 y 54.5 coinciden con los rangos de edad que hemos definido nostros mismos en el apartado de descripción de datos.

A pesar de todo, el modelo no es capaz de alcanzar una gran precisión y tiende a asignar la transacción a compras hechas en tienda como sugiere la baja precisión y el alto recall, así como la propia matriz de confusión.

TODAS LAS VARIABLES COMO FEATURES

II.C. Modelo Predictivo

II.C.1. Split en Training y Testing

Ahora dividiremos los datos en training y testing:

II.C.2. Selección del Algoritmo y Optimización

Optimizamos los parámetros:

II.C.3. Modelo Predictivo

Aplicamos el modelo para obtener su calidad así como los valores predecidos:

Mostramos la matriz de confusión:

II.C.4. Conclusiones

Los falsos valores asignados a tienda se han reducido en un factor 2.5 aproximadamente y la precisión con que se asigna al canal online ha subido drásticamente hasta 1.

El canal online muestra una ecxelente precisión y un recall aceptable. Esto significa que el modelo no siempre identifica el canal online pero cuando lo hace, lo hace con mucha confianza.

Para el canal tienda tenemos los valores de precisión y recall cambian sus papeles, ganando protagonismo el segundo. Esto significa que siempre identifica las compras en tienda perfectamente pero también asigna como compras en tienda algunas que realmente se han hecho online.

Este sí puede considerarse un buen modelo. Ahora tenemos los resultados necesarios para responder a la pregunta que se nos plantea:

¿Hay correlación entre la edad del cliente y si la transacción se realiza de forma online o en tienda física?

La edad marca algunas tendencias claras para prever el canal de la compra, pero solo para ciertos rangos de edad como los mayores de 75 los cuales solo compran de forma online (primera división que realiza el árbol de decisión). Existen otros colectivos como los comprendidos entre 55-63 y 24-26 que tienden a hacer más compras online y en tienda respectivamente. Sin embargo, en el resto de rangos las compras online y en tienda se reparten de forma muy equitativa y el algoritmo es incapaz de aprender de los datos con certeza. Parece imposible crear un modelo fiable a partir de la edad únicamente.

¿Pueden otros factores predecir si un cliente comprará online o en tienda?

Una vez incluimos las demás features, el modelo mejora substancialmente. La precisión general roza el 90%, las falsas compras en tienda se reducen en un factor 2.5 aproximadamente y se identifican las compras online con una alta garantía. Tenemos por lo tanto un modelo fiable para predecir si la transacción se llevará a cabo de forma online o en tienda.

III) Región

Es el turno de tratar de predecir la variable región.

III.A. Descripción de los Datos

Organizamos los datos para tener una visión global y general. De los apartados anteriores vimos:

Como podemos ver, hay muchas condiciones que diferencian la región sud. Podemos esperar un modelo que nos distinga bien la región sud, pero será difícil hacer una buena previsión para las demás regiones.

Realizamos a continuación dos boxplot que visualizan bastante bien los puntos que hemos mencionado aquí.

En el diagrama de cajas observamos una diferencia notable para cada rango de edad:

III.B. Selección de las Variables Independientes

Vistos los resultados en el anterior apartado, tendremos en cuenta todas las variables restantes como features a excepción del número de productos comprados:

Se definen las features y la variable dependiente:

III.C. Modelo Predictivo

III.C.1. Split en Training y Testing

Ahora dividiremos los datos en training y testing manteniendo los parámetros de los demás apartados:

III.C.2. Selección del Algoritmo y Optimización

Crearemos hasta dos modelos predictivos para comparar resultados y ver cuál nos proporciona mejores resultados:

Como ya hemos hecho anteriormente, antes de aplicar el algoritmo, optimizaremos los hyperaparameters para ambos algoritmos:

III.C.3. Modelo Predictivo

Decision Tree

Aplicamos el algoritmo y vemos la precisión:

Visualizamos la matriz de confusión:

Random Forest

Aplicamos el algoritmo y vemos la precisión:

Visualizamos la matriz de confusión:

III.C.4. Conclusiones

Recordemos la pregunta que se nos planteaba:

¿Es posible clasificar las transacciones por región?

Como habíamos supuesto, el modelo es capaz de predecir aquellas transacciones que se dan en el sud con muy buena puntuación y, en menor medida, las dadas en la región oeste. El modelo es capaz de identificar todas las transacciones que se dan en el sud (recall = 100%) aunque la precisión no es exacta (88%), es decir, identifica como transacciones del sud algunas que pertenecen a otras regiones.

Para la región oeste, tenemos resultados al límite de los que podríamos considerar como aceptables. Tenemos una precisión del 65% y un recall del 70%. Esto es debido a que la región oeste se diferencia del este para aquellas transacciones hechas en tienda por valor de entre 1000 y 2000. En cambio, los datos no permiten aislar la región este de ninguna forma. La región norte, aunque tampoco se puede aislar completamente, se limita a vender en tienda física por lo que acota más los resultados. Además, recordemos que la región oeste es la región que más transacciones registra, por lo que el modelo tiende a asignar los datos a esta región.

En cuanto a la comparación de los dos algoritmos (Decision Tree y Random Forest), podemos decir que los resultados son muy similares y las conclusiones no cambian.

IV) Número de Productos

En cuánto al número de productos, describiremos los resultados que ya obtuvimos en la tarea 1. De estos resultados ya concluimos que esta variable no estaba ligada a ninguna otra. Los resultados son tan evidentes que no nos extenderemos realizando el análisis predictivo. Aún así, veremos algunos gráficos para ver cómo se distribuye en función de las otras y justificar así esta decisión.

IV.A. Descripción de los Datos

Organizamos los datos y los visualizamos. Mostramos el número de productos en función de las demás variables. Primero para la cantidad discretizada y después para la edad también discretizada:

Como podemos ver, no hay correlación ninguna con ninguna variable y todas las cajas abarcan todos los valores (de 1 a 8 productos). Este es el motivo por el que ni siquiera se ha considerado en los demás modelos. Si se considerase, no hubiera aparecido en el árbol ya que el algoritmo calcula la partición que le proporciona mayor información y esta variable no proporciona ninguna.

No se ampliarán los demás apartados ya que no tiene sentido crear un algoritmo para predecir esta variable.

V) Cantidad Gastada

En este punto trataremos de crear un modelo predictivo de la cantidad gastada.

V.A. Descripción de los Datos

Organizamos los datos para tener una visión global y general. De los apartados anteriores podemos decir:

Representamos los datos dividiendo por rangos de edad en un diagrama de cajas. Utilizaremos los rangos definidos anteriormente. Nos interesa que las cajas sean lo más pequeñas posibles para centrar los valores en el rango más estrecho posible, de forma que sea fácil predecir los valores.

La edad nos proporciona algunos patrones adicionales, sobretodo sobre la región norte donde limita el máximo importe por transacción a 1000 para edades mayores de 55. Sin embargo, tampoco resulta ser un indicador que nos dé una distinción precisa.

La región también nos proporciona información muy valiosa, sobretodo para la región sud, que se diferencia de las demás con claridad y se limita a las transacciones de valor hasta 500.

El mayor problema surge en las regiones este y oeste ya que el diagrama de cajas muestra unas cajas muy altas en compras online, con muchos valores posibles para una región y edad dadas.

V.B. Selección de las Variables Independientes

Las variables que tendremos en cuenta son:

Se definen las features y la variable dependiente:

V.C. Modelo Predictivo

V.C.1. Split en Training y Testing

Ahora dividiremos los datos en training y testing:

V.C.2. Selección del Algoritmo y Optimización

Crearemos dos modelos predictivos para comparar resultados y ver cuál nos proporciona mejores resultados. Para ello usaremos los siguientes algoritmos:

Decision Tree

Optimizamos los parámetros

Random Forest

Optimizamos los parámetros:

V.C.3. Modelo Predictivo

Decision Tree

Aplicamos el algoritmo y vemos la precisión:

Visualizamos la matriz de confusión:

Random Forest

Aplicamos ahora el algoritmo random forest:

Visualizamos la matriz de confusión:

V.C.4. Conclusiones

Recordemos la pregunta que nos planteábamos:

¿Es posible crear un modelo predictivo utilizando la cantidad gastada como variable dependiente?

La precisión del modelo es bastante baja en general pero aún así podemos extraer información útil de él. El motivo para afirmar esto es que tenemos una excelente precisión para el rango de gasto entre 0 y 500. La alta precisión junto al bajo recall nos está diciendo que el modelo no será capaz de detectar muy bien este rango de gasto pero cuando lo haga, será muy fiable. Por lo tanto, siempre que este modelo nos diga que el gasto del cliente será entre 0 y 500 podemos confiar en él.

Para el rango [1000, 2000] tenemos un buen valor de recall. Esto significa que identifica correctamente el rango pero tiende a meter en este mismo rango transacciones que realmente pertenencen a otros.

Así pues la respuesta a la pregunta sería que hemos obtenido un modelo que es capaz de predecir con precisión únicamente las transacciones de valor entre 0 y 500 pero no es capaz de predecir las demás cantidades con precisión.

Resumen y Conclusiones

Se recogen aquí las respuestas que ya hemos dado en sus respectivos apartados:

¿Existen diferencias de edad entre los clientes de distintas regiones?

Sí existen ligeras diferencias en general, destacando la región sud la cual muestra una media de edad mayor al resto de regiones y, además, es la única que registra transacciones de clientes mayores de 75 años. Aún así, todas las regiones abarcan rangos de edad muy amplios y resulta imposible predecir la edad con precisión.

¿Podemos predecir la edad del cliente en una región basándonos en la demás información?

No, el modelo obtenido no es fiable. La precisión es baja para todos los rangos de edad y dos de ellos indican un alto recall. Esto significa que el modelo incluye en esos rangos muchas otras muestras pertenecientes a otros rangos.

¿Hay correlación entre la edad del cliente y si la transacción se realiza de forma online o en tienda física?

La edad marca algunas tendencias claras para prever el canal de la compra, pero solo para ciertos rangos de edad como los mayores de 75 los cuales solo compran de forma online (primera división que realiza el árbol de decisión). Existen otros colectivos como los comprendidos entre 55-63 y 24-26 que tienden a hacer más compras online y en tienda respectivamente. Sin embargo, en el resto de rangos las compras online y en tienda se reparten de forma muy equitativa y el algoritmo es incapaz de aprender de los datos con certeza. Parece imposible crear un modelo fiable a partir de la edad únicamente.

¿Pueden otros factores predecir si un cliente comprará online o en tienda?

Una vez incluimos las demás features, el modelo mejora substancialmente. La precisión general roza el 90%, las falsas compras en tienda se reducen en un factor 2.5 aproximadamente y se identifican las compras online con una alta garantía. Tenemos por lo tanto un modelo fiable para predecir si la transacción se llevará a cabo de forma online o en tienda.

¿Es posible clasificar las transacciones por región?

El modelo es capaz de predecir aquellas transacciones que se dan en el sud con muy buena puntuación y, en menor medida, las dadas en la región oeste. El modelo es capaz de identificar todas las transacciones que se dan en el sud (recall = 100%) aunque la precisión no es exacta (88%), es decir, identifica como transacciones del sud algunas que pertenecen a otras regiones.

Para la región oeste, tenemos resultados al límite de los que podríamos considerar como aceptables. Tenemos una precisión del 65% y un recall del 70%. Esto es debido a que la región oeste se diferencia del este para aquellas transacciones hechas en tienda por valor de entre 1000 y 2000. En cambio, los datos no permiten aislar la región este de ninguna forma. La región norte, aunque tampoco se puede aislar completamente, se limita a vender en tienda física por lo que acota más los resultados. Además, recordemos que la región oeste es la región que más transacciones registra, por lo que el modelo tiende a asignar los datos a esta región.

¿Qué papel juega la cantidad de productos comprados? ¿Aparece en el árbol? ¿Por qué o por qué no?

No hay correlación ninguna con ninguna variable. Este es el motivo por el que ni siquiera se ha considerado en los demás modelos. Si se considerase, no hubiera aparecido en el árbol ya que el algoritmo calcula la partición que le proporciona mayor información y esta variable no proporciona ninguna.

¿Es posible crear un modelo predictivo utilizando la cantidad gastada como variable dependiente?

La precisión del modelo es bastante baja en general pero aún así podemos extraer información útil de él. El motivo para afirmar esto es que tenemos una gran precisión para el rango de gasto entre 0 y 500. La alta precisión junto al bajo recall nos está diciendo que el modelo no será capaz de detectar muy bien este rango de gasto pero cuando lo haga, será muy fiable. Por lo tanto, siempre que este modelo nos diga que el gasto del cliente será entre 0 y 500 podemos confiar en él.

Así pues la respuesta a la pregunta sería que hemos obtenido un modelo que es capaz de predecir con precisión únicamente las transacciones de valor entre 0 y 500 pero no es capaz de predecir las demás cantidades.

Adicionalmente se contrastarán algunas hipótesis que se nos plantean:

Los clientes que compran en tienda son mayores que aquellos que compran de forma online.

Si realizamos un diagrama de cajas que contemple estas variables obtenemos:

Los datos claramente nos dicen que esa hipótesis es falsa. De hecho, la distribución de edades por canal indica que la tendencia es la contraria. Las compras online son frecuentadas por gente de mayor edad que las compras en tienda.

Ambas cajas indican un amplio rango de edades y muestran clientes de todas las edades a excepción del rango de edad entre 75 y 85. Los clientes de este rango de edad solo realiza compras online y no muestra ni una sola transacción en tienda.

Los clientes de mayor edad gastan más dinero en electrónica que los jóvenes.

Mostramos tres gráficos. El primero nos muestra la distribución de la cantidad gastada por transacción para cada rango de edad, el segundo muestra el gasto total resultado de la suma de todas las transacciones realizadas por los clientes con una misma edad mientras que el último muestra el número de transacciones por edad:

Todos los gráficos nos muestran una tendencia única y clara.

Tanto el gasto total como el número de transacciones muestran la misma tendencia y ambas crecen entre los 18 y 28 años para mantenerse constante hasta los 54 aproximadamente. Después se reduce drásticamente en tres escalones situados a los 55, 64 y 75 años aproximadamente.

Además, no solo el gasto por transacción y el número de transacciones es mayor para los clientes más jóvenes, sino que también el gasto por transacción suele ser superior.

Por lo tanto podemos decir que esta hipótesis es cierta.